namespace Ruitu.Edu.TrainingDemo.Models;

/// <summary>
/// 演示设置模型 - 用于站点设置的 POCO 类
/// 
/// 主要用途：
/// - 演示如何创建自定义站点设置
/// - 展示 ASP.NET Core 选项模式的使用
/// - 支持多种配置源（站点设置、appsettings.json、环境变量）
/// 
/// 使用场景：
/// - 需要存储租户级别的配置
/// - 需要支持多种配置源
/// - 需要动态配置管理
/// 
/// 设计原因：
/// - 利用 ASP.NET Core 的选项模式
/// - 支持 Orchard Core 的站点设置序列化
/// - 提供灵活的配置管理
/// 
/// 设计模式：
/// - POCO 模式：使用简单的普通 CLR 对象
/// - 选项模式：支持 ASP.NET Core 选项模式
/// - 配置模式：支持多种配置源
/// </summary>
// 如果您想创建需要存储的自定义站点设置，您需要为此使用一个简单的 POCO 类，
// 它将被序列化到 ISite 对象中。但是，这里我们实际上超越了这一点：
// 我们利用 ASP.NET Core 选项模式也将其注册为选项。这将允许我们不仅将这些设置存储在站点设置中，
// 而且还可以从各种其他方式提供它们，比如从 appsettings.json 文件或环境变量。
// 对于所有这些，请参阅：https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/
// 如果您不熟悉选项，请在此处查看官方文档：
// https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options
// Orchard 实际上建立在这所有之上，请参阅：https://docs.orchardcore.net/en/latest/docs/reference/core/Configuration/
public class DemoSettings
{
    /// <summary>
    /// 演示消息 - 用于演示目的的简单消息
    /// </summary>
    // 我们将为演示目的存储一个简单消息。
    public string Message { get; set; }
}

// 下一站：Drivers/DemoSettingsDisplayDriver.cs
